import { defineStore } from 'pinia'
import { ref, computed } from 'vue'

// 购物车状态管理
export const useCartStore = defineStore('cart', () => {
  // 购物车商品列表
  const cart = ref([])

  // 添加商品到购物车
  function addToCart(product) {
    // 检查购物车中是否已存在该商品
    const exist = cart.value.find(item => item.id === product.id)
    if (exist) {
      exist.quantity += 1 // 已有商品数量+1
    } else {
      cart.value.push({ ...product, quantity: 1 }) // 新商品加入购物车
    }
  }

  // 移除商品
  function removeFromCart(id) {
    cart.value = cart.value.filter(item => item.id !== id)
  }

  // 清空购物车
  function clearCart() {
    cart.value = []
  }

  // 计算总价
  const totalPrice = computed(() => {
    return cart.value.reduce((sum, item) => sum + item.price * item.quantity, 0)
  })

  return { cart, addToCart, removeFromCart, clearCart, totalPrice }
}) 